package com.efo.service.impl;

import com.efo.common.exception.BaseException;
import com.efo.common.result.ResultEnum;
import com.efo.common.utils.MD5Utils;
import com.efo.mapper.AccountStaffMapper;
import com.efo.model.AccountStaff;
import com.efo.service.AccountStaffService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

/**
 * @Package: com.efo.service.impl
 * @Description: 员工账号业务逻辑接口实现类
 * @Author CHY
 * @Create 2021年11月08日 14时50分51秒
 */
@Service
public class AccountStaffServiceImpl implements AccountStaffService {
    @Autowired
    private AccountStaffMapper accountStaffMapper;

    @Override
    public AccountStaff queryOneForLogin(AccountStaff accountStaff) {
        /* 声明结果对象，接收查询结果 */
        AccountStaff resultAccount = null;
        /* 验证用户名是否存在 */
        AccountStaff onlyUsername = new AccountStaff();
        //传入输入的用户名
        onlyUsername.setUsername(accountStaff.getUsername());
        //根据用户名查询
        resultAccount = accountStaffMapper.selectOne(onlyUsername);
        /* 如果对象为空，则该用户不存在 */
        if (resultAccount == null){
            throw new BaseException(ResultEnum.LOGIN_USER_NOT_SIGN);
        }else {
            //查询的用户名已注册，匹配密码
            if (!resultAccount.getPassword().equals(MD5Utils.md5Encode(accountStaff.getPassword()))){
                throw new BaseException(ResultEnum.LOGIN_PASSWORD_ERROR);
            }
        }

        return resultAccount;
    }
}
